package com.lzw.common.service;

import com.github.pagehelper.PageInfo;
import com.lzw.common.bean.Result;
import com.lzw.common.param.PageParam;
import com.lzw.param.user.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 基础服务层接口，实现增删查改的接口
 * Created by 林志伟 on 2017/5/11.
 */
public interface BaseService<T> {
    /**
     * 插入数据
     * @param t
     * @return
     */
    public Result insert(T t);

    /**
     * 修改数据
     * @param t
     * @return
     */
    public Result update(T t);

    /**
     * 删除指定id的数据
     * @param id
     * @return
     */
    public Result delete( Integer id);

    /**
     * 删除指定id的数据
     * @param ids
     * @return
     */
    public Result deleteAll(  int[] ids);

    /**
     * 查找指定数据
     * @param id
     * @return
     */
    public T find(Integer id);

    /**
     * 查询前size条数据
     * @param size
     * @return
     */
    public List<T> select( int size);

    /**
     * 分页查询
     * @param page
     * @return
     */
    public PageInfo<T> page(PageParam pageParam);


    public Result open(int id);

    public Result close(int id);
}

